﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using DTO;

namespace DAO
{
    public class BenhNhan_DAO
    {
        public static DataTable DanhSachBenhNhan()
        {
            DataTable dt = DataProvider.SelectStoreProcedure("sp_DanhSachBenhNhan");
            return dt;
        }

        public static DataTable DanhSachBenhNhanTheoMa(string MaBN)
        {
            List<SqlParameter> ParaArr = new List<SqlParameter>();
            string procname = "sp_DanhSachBenhNhanTheoMa";
            ParaArr.Add(new SqlParameter("@MaBN", MaBN));
            return DataProvider.SelectStoreProcedure(procname, ParaArr);
        }

        public static DataTable DanhSachBenhNhanTheoTen(string TenBN)
        {
            List<SqlParameter> ParaArr = new List<SqlParameter>();
            string procname = "sp_DanhSachBenhNhanTheoTen";
            ParaArr.Add(new SqlParameter("@TenBN", TenBN));
            return DataProvider.SelectStoreProcedure(procname, ParaArr);
        }

        public static DataTable DanhSachBenhNhanTheoDiaChi(string DiaChiBN)
        {
            List<SqlParameter> ParaArr = new List<SqlParameter>();
            string procname = "sp_DanhSachBenhNhanTheoDiaChi";
            ParaArr.Add(new SqlParameter("@DiaChi", DiaChiBN));
            return DataProvider.SelectStoreProcedure(procname, ParaArr);
        }
        public static DataTable DanhSachBenhNhanTheoGioiTinhNam(int nam)
        {
            List<SqlParameter> ParaArr = new List<SqlParameter>();
            string procname = "sp_DanhSachBenhNhanTheoGioiTinhNam";
            ParaArr.Add(new SqlParameter("@GioiTinh", nam));
            return DataProvider.SelectStoreProcedure(procname, ParaArr);
        }
        public static DataTable DanhSachBenhNhanTheoGioiTinhNu(int nu)
        {
            List<SqlParameter> ParaArr = new List<SqlParameter>();
            string procname = "sp_DanhSachBenhNhanTheoGioiTinhNu";
            ParaArr.Add(new SqlParameter("@GioiTinh", nu));
            return DataProvider.SelectStoreProcedure(procname, ParaArr);
        }

        public static Boolean ThemBenhNhan(BenhNhan_DTO BenhNhanDto)
        {
            try
            {
                List<SqlParameter> ParaArr = new List<SqlParameter>();
                string procname = "sp_ThemBenhNhan";
                ParaArr.Add(new SqlParameter("@TenBN", BenhNhanDto.TenBN));
                ParaArr.Add(new SqlParameter("@GioiTinh", BenhNhanDto.GioiTinh));
                ParaArr.Add(new SqlParameter("@CMND", BenhNhanDto.CMND));
                ParaArr.Add(new SqlParameter("@DiaChi ", BenhNhanDto.DiaChi));
                ParaArr.Add(new SqlParameter("@SoDienThoai", BenhNhanDto.SoDienThoai));
                ParaArr.Add(new SqlParameter("@NgheNghiep", BenhNhanDto.NgheNghiep));
                ParaArr.Add(new SqlParameter("@NgaySinh", BenhNhanDto.NgaySinh));
                ParaArr.Add(new SqlParameter("@TheBH ", BenhNhanDto.TheBH));
                ParaArr.Add(new SqlParameter("@MoTa ", BenhNhanDto.Mota));
                ParaArr.Add(new SqlParameter("@Hinh ", BenhNhanDto.Hinh));
                return DataProvider.NonqueryProc(procname, ParaArr);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        public static Boolean CapNhatBenhNhan(BenhNhan_DTO BenhNhanDto)
        {
            List<SqlParameter> ParaArr = new List<SqlParameter>();
            string procname = "sp_CapNhatBenhNhan";
            ParaArr.Add(new SqlParameter("@MaBN", BenhNhanDto.MaBN));
            ParaArr.Add(new SqlParameter("@TenBN", BenhNhanDto.TenBN));
            ParaArr.Add(new SqlParameter("@GioiTinh", BenhNhanDto.GioiTinh));
            ParaArr.Add(new SqlParameter("@CMND", BenhNhanDto.CMND));
            ParaArr.Add(new SqlParameter("@DiaChi ", BenhNhanDto.DiaChi));
            ParaArr.Add(new SqlParameter("@SoDienThoai", BenhNhanDto.SoDienThoai));
            ParaArr.Add(new SqlParameter("@NgheNghiep", BenhNhanDto.NgheNghiep));
            ParaArr.Add(new SqlParameter("@NgaySinh", BenhNhanDto.NgaySinh));
            ParaArr.Add(new SqlParameter("@TheBH ", BenhNhanDto.TheBH));
            ParaArr.Add(new SqlParameter("@MoTa ", BenhNhanDto.Mota));
            ParaArr.Add(new SqlParameter("@Hinh ", BenhNhanDto.Hinh));
            return DataProvider.NonqueryProc(procname, ParaArr);
        }


        public static Boolean CapNhatTinhTrangSucKhoeBenhNhan(BenhNhan_DTO BenhNhanDto)
        {
            List<SqlParameter> ParaArr = new List<SqlParameter>();
            string procname = "sp_CapNhatChiSoSucKhoeBenhNhan";
            ParaArr.Add(new SqlParameter("@MaBN", BenhNhanDto.MaBN));
            ParaArr.Add(new SqlParameter("@ThanNhiet", BenhNhanDto.ThanNhiet));
            ParaArr.Add(new SqlParameter("@HuyetAp", BenhNhanDto.HuyetAp));
            ParaArr.Add(new SqlParameter("@Mach", BenhNhanDto.Mach));
            ParaArr.Add(new SqlParameter("@NhipTho ", BenhNhanDto.NhipTho));
            ParaArr.Add(new SqlParameter("@ChieuCao", BenhNhanDto.ChieuCao));
            ParaArr.Add(new SqlParameter("@CanNang", BenhNhanDto.CanNang));
            ParaArr.Add(new SqlParameter("@Vong2", BenhNhanDto.Vong2));
            ParaArr.Add(new SqlParameter("@Vong3 ", BenhNhanDto.Vong3));
            return DataProvider.NonqueryProc(procname, ParaArr);
        }

        public static Boolean XoaBenhNhan(string MaBN)
        {
            List<SqlParameter> ParaArr = new List<SqlParameter>();
            string procname = "sp_XoaBenhNhan";
            ParaArr.Add(new SqlParameter("@MaBN", MaBN));
            return DataProvider.NonqueryProc(procname, ParaArr);
        }
    }
}
